// JavaScript Document
/**
 * 注册及登录 验证
 * CreateDate：2012-07-24
 */
var defaultValue = {
    useremail: 0,
    nickname: 0,
    password: 0,
    auth: 0
}
var notice = {
    email_default: '请输入你常用的电子邮箱作为用户名，最大长度40位',
    email_error: '邮箱格式错误或长度超过40位',
    email_exist: '你输入的邮箱已注册',
    nickname_default: '英文、数字、汉字及-_组成，且长度不超过20位',
    nickname_error: '昵称为空或格式错误',
    nickname_exist: '你输入的昵称已被使用，请更换',
    password_default: '密码长度为6-20位，由数字、英文字母组成',
    password_error: '密码为空或格式错误',
    confirm_password_default: '请再次确认密码',
    confirm_password_error: '两次输入的密码不一致',
    auth_error: '请输入正确的答案，点击图片可刷新'
}

//正则匹配邮箱
function isEmail(str) {
    var patrn = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
    if (!patrn.exec(str) || getLen(str) > 40) return false
    return true
}
//正则匹配昵称
function isNickname(str) {
    var patrn = /^[\u4e00-\u9fa5A-Za-z0-9-_]*$/;
    if (!patrn.exec(str) || getLen(str) == 0 || getLen(str) > 20) return false
    return true
}
//正则匹配密码
function isPasswd(str) {
    var patrn = /^(\w){6,20}$/;
    if (!patrn.exec(str)) return false
    return true
}
//通过js来获取包含中文字符的字符串的长度  
function getLen(str) {
    var totallength = 0;
    for (var i = 0; i < str.length; i++) {
        //charCodeAt 返回一个整数，获得字符的unicode编码
        var intCode = str.charCodeAt(i);
        if (intCode >= 0 && intCode <= 128) {//为字符的编码范围
            totallength = totallength + 1;//非中文单个字符长度加1
        } else {
            totallength = totallength + 2;//中文字符长度则加2
        }
    }
    return totallength;
}
//重载验证码
function fleshVerify() {
    var timenow = new Date().getTime();
    $('#auth_image').attr('src', _URL_ + '/authcode/' + timenow);
}

$(document).ready(function () {
    $('#user_email').focus();
    $('#notice_email_text').html(notice.email_default);
    $('#notice_nickname_text').html(notice.nickname_default);
    $('#notice_password_text').html(notice.password_default);
    $('#notice_passwordConfirm_text').html(notice.confirm_password_default);

    //邮箱
    $('#user_email').focus(function () {
        $('#notice_email_text').html(notice.email_default);
        $('#notice_email_img').attr('class', 'notice');
    })
    $('#user_email').blur(function () {
        if (!isEmail($(this).val())) {
            $('#notice_email_text').html(notice.email_error);
            $('#notice_email_img').attr('class', 'notice notice_error');
        } else {
            $.ajax({
                dataType: "text",
                type: "POST",
                url: _URL_ + "/checkuseremail",
                data: "user_email=" + $(this).val(),
                success: function (val) {
                    if (val == 2) {
                        $('#notice_email_text').html('');
                        $('#notice_email_img').attr('class', 'notice notice_correct');
                        defaultValue.useremail = 1;
                    } else {
                        $('#notice_email_text').html(notice.email_exist);
                        $('#notice_email_img').attr('class', 'notice notice_error');
                    }
                },
                error: function () {
                    $('#notice_email_text').html('服务器没有返回数据请稍后再试');
                }
            });
        }
    })
    //昵称
    $('#user_nickname').focus(function () {
        $('#notice_nickname_text').html(notice.nickname_default);
        $('#notice_nickname_img').attr('class', 'notice');
    })
    $('#user_nickname').blur(function () {
        if (!isNickname($(this).val())) {
            $('#notice_nickname_text').html(notice.nickname_error);
            $('#notice_nickname_img').attr('class', 'notice notice_error');
        } else {
            $.ajax({
                dataType: "text",
                type: "POST",
                url: _URL_ + "/checknickname",
                data: "user_nickname=" + $(this).val(),
                success: function (val) {
                    if (val == 2) {
                        $('#notice_nickname_text').html('');
                        $('#notice_nickname_img').attr('class', 'notice notice_correct');
                        defaultValue.nickname = 1;
                    } else {
                        $('#notice_nickname_text').html(notice.nickname_exist);
                        $('#notice_nickname_img').attr('class', 'notice notice_error');
                    }
                },
                error: function () {
                    $('#notice_nickname_text').html('服务器没有返回数据请稍后再试');
                }
            });
        }
    })
    //密码
    $("#user_passwd").focus(function () {
        $('#notice_password_text').html(notice.password_default);
        $('#notice_password_img').attr('class', 'notice');
    })
    $('#user_passwd').blur(function () {
        if (!isPasswd($(this).val())) {
            $('#notice_password_text').html(notice.password_error);
            $('#notice_password_img').attr('class', 'notice notice_error');
        } else {
            $('#notice_password_text').html('');
            $('#notice_password_img').attr('class', 'notice notice_correct');
        }
    })
    $("#user_passwd2").focus(function () {
        $('#notice_passwordConfirm_text').html(notice.confirm_password_default);
        $('#notice_passwordConfirm_img').attr('class', 'notice');
    })
    $('#user_passwd2').blur(function () {
        if (!isPasswd($(this).val())) {
            $('#notice_passwordConfirm_text').html(notice.confirm_password_error);
            $('#notice_passwordConfirm_img').attr('class', 'notice notice_error');
        } else {
            var p1 = $("#user_passwd").val();
            var p2 = $("#user_passwd2").val();
            if (p1 != p2) {
                $('#notice_passwordConfirm_text').html(notice.confirm_password_error);
                $('#notice_passwordConfirm_img').attr('class', 'notice notice_error');
            } else {
                $('#notice_passwordConfirm_text').html('');
                $('#notice_passwordConfirm_img').attr('class', 'notice notice_correct');
                defaultValue.password = 1;
            }
        }
    })
    //验证码
    $("#auth").blur(function () {
        $.ajax({
            dataType: "text",
            type: "POST",
            url: _URL_ + "/checkauth",
            data: "auth=" + $(this).val(),
            success: function (val) {
                if (val == 2) {
                    $('#notice_auth_text').html('');
                    $('#notice_auth_img').attr('class', 'notice notice_correct');
                    defaultValue.auth = 1;
                } else {
                    $('#notice_auth_text').html(notice.auth_error);
                    $('#notice_auth_img').attr('class', 'notice notice_error');
                }
            },
            error: function () {
                $('#notice_auth_text').html('服务器没有返回数据请稍后再试');
                $('#notice_auth_img').attr('class', 'notice notice_error');
            }
        });
    })

    //勾选同意注册条款时，隐藏提示
    $('#agreeLaw').click(function () {
        if ($(this).attr("checked") == false) {
            $('#lawtext').html('勾选后才能注册哦');
        } else {
            $('#lawtext').html('');
        }
    })

    //登录界面
    $('#login_useremail').focus(function () {
        if (this.value == this.defaultValue) {
            this.value = '';
        }
    })

    $('#login_useremail').blur(function () {
        if (this.value == '') {
            this.value = this.defaultValue;
        }
    })

    $('#login_password').focus(function () {
        if (this.value == '') {
            $('.pass_notice').html('');
        }
    })

    $('#login_password').blur(function () {
        if (this.value == '') {
            $('.pass_notice').html('密码');
        }
    })

    $('.pass_notice').click(function(){
        $(this).html('');
        $('#login_password').focus();
    })





})

//提交注册时检查表单数据是否合法
function checkRegData() {
    if ($("#agreeLaw").attr("checked")) {
        if (defaultValue.useremail == 1 && defaultValue.nickname == 1 && defaultValue.password == 1 && defaultValue.auth == 1) {
            $('#common-notice-text').html('正在注册......');
            dialog('#common-notice');
            //提交注册
            $.ajax({
                type: "POST",
                url: _URL_ + "/checkRegister",
                datatype: "text",
                data: "user_email=" + $('#user_email').val() + "&user_passwd=" + $('#user_passwd').val() + "&user_nickname=" + $('#user_nickname').val() + "&user_gender=" + $("input[name='user_gender']:checked").val() + "&auth=" + $('#auth').val(),
                success: function (val) {
                    if (val != 6) {
                        closeDialog('#common-notice');
                    }
                    if (val == 1) {
                        //邮箱不可用
                        $('#notice_email_text').html('邮箱格式不正确或已注册');
                        $('#notice_email_img').attr('class', 'notice notice_error');
                    } else if (val == 2) {
                        //昵称不可用
                        $('#notice_nickname_text').html('昵称格式不正确或已使用');
                        $('#notice_nickname_img').attr('class', 'notice notice_error');
                    } else if (val == 3) {
                        //密码格式不正确
                        $('#notice_password_text').html(notice.password_error);
                        $('#notice_password_img').attr('class', 'notice notice_error');
                    } else if (val == 4) {
                        //验证码不正确
                        $('#notice_auth_text').html(notice.auth_error);
                        $('#notice_auth_img').attr('class', 'notice notice_error');
                    } else if (val == 5) {
                        //注册成功且发送邮件成功或者注册成功发送邮件失败，都跳转至激活邮件提醒页
                        jumpurl(_URL_ + '/activationpage');
                    } else if (val == 6) {
                        //注册失败
                        $('#common-notice-text').html('注册失败，请稍后重试！');
                        setTimeout("closeDialog('#common-notice')", 2000);
                    }
                },
                error: function () {
                    alert('服务器异常');
                }
            });
        }
    } else {
        $('#lawtext').html('勾选后才能注册哦');
    }
}

//注册时，选择再次发送激活邮件
function sendAgain() {
    $.ajax({
        type: "POST",
        url: _URL_ + "/sendAgain",
        datatype: "text",
        success: function (text) {
            $('#addyg .title').html(text);
            dialog('#addyg');
        }
    });
}


//登陆中心页，提交登陆资料
function login() {
    var user_email = $('#login_useremail').val();
    var user_passwd = $('#login_password').val();
    if (isEmail(user_email)) {
        if (isPasswd(user_passwd)) {
            //进行ajax验证
            $('.pass_notice_wrap').html('');
            $.ajax({
                type: "POST",
                url: _URL_ + "/checkLogin",
                datatype: "text",
                data: "user_email=" + user_email + "&user_passwd=" + user_passwd + "&autologin=" + $("input[name='autologin']:checked").val(),
                success: function (text) {
                    if (text == 1) {
                        $('.pass_notice_wrap').html('<font>账号或密码错误！</font>');
                    } else if (text == 2) {
                        $('.pass_notice_wrap').html('<font>账号未激活，请前往邮箱激活！</font>');
                    } else if (text == 3) {
                        $('.pass_notice_wrap').html('<font>此账号已停用！</font>');
                    } else if (text == 4) {
                        //登陆成功，跳转至首页
                        jumpurl(_APP_);
                    }
                },
                error: function () {
                    $('.pass_notice_wrap').html('<font>服务器未返回数据，请稍后再试！</font>');
                }
            });
        } else {
            $('#login_password').focus();
            $('.pass_notice_wrap').html('<font>' + notice.password_error + '</font>');
        }
    } else {
        $('#login_useremail').focus();
        $('.pass_notice_wrap').html('<font>' + notice.email_error + '</font>');
    }
}